package com.turato.mybatis.web.dao.mapper;

import com.turato.mybatis.web.model.po.EmployeesPO;
import com.turato.mybatis.web.model.bo.EmployeeBO;
import com.turato.mybatis.web.model.bo.SearchEmployeeConditionBO;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface EmployeesMapper {
    /**
     * 根据主键删除数据库的记录
     *
     * @param empNo
     * @return 
     */
    int deleteByPrimaryKey(Integer empNo);

    /**
     * 插入数据库记录
     *
     * @param record
     * @return 
     */
    int insert(EmployeesPO record);

    /**
     * 插入数据库记录
     *
     * @param record
     * @return 
     */
    int insertSelective(EmployeesPO record);

    /**
     * 根据主键获取一条数据库记录
     *
     * @param empNo
     * @return 
     */
    EmployeesPO selectByPrimaryKey(Integer empNo);

    /**
     * 条件查询BO
     * @param condition
     * @return
     */
    List<EmployeeBO> searchByConditionBO(SearchEmployeeConditionBO condition);

    /**
     * 条件查询MAP
     * @param conditionMap
     * @return
     */
    List<EmployeeBO> searchByConditionMap(Map<String, Object> conditionMap);

    /**
     * 条件查询参数
     * @param firstName
     * @param lastName
     * @return
     */
    List<EmployeeBO> searchByConditionParam(@Param("firstName") String firstName,
                                            @Param("lastName") String lastName);


    /**
     * 根据主键来更新数据库记录
     *
     * @param record
     * @return 
     */
    int updateByPrimaryKeySelective(EmployeesPO record);

    /**
     * 根据主键来更新数据库记录
     *
     * @param record
     * @return 
     */
    int updateByPrimaryKey(EmployeesPO record);
}